/**给定一个 n 个元素有序的（升序）整型数组 nums 和一个目标值 target  ，
 * 写一个函数搜索 nums 中的 target，如果目标值存在返回下标，否则返回 -1
***/
#include <stdio.h>

int search(int *nums, int numsSize, int target)
{
    int min = 0;
    int max = numsSize - 1;
    if (nums[min] == target)
        return min;
    if (nums[max] == target)
        return max;
    while (min < max - 1)
    {
        int i = (max + min) / 2;
        if (nums[i] == target)
            return i;
        if (nums[i] > target)
            max = i;
        if (nums[i] < target)
            min = i;
    }
    return -1;
}

int main()
{
    int nums[] = {-1, 0, 3, 5, 9, 12};
    int numSize = 6;
    int target = 2;
    printf("%d", search(nums, numSize, target));
}